  
  
  #pragma once
  
  #ifndef _MANAGED
      #include <string>
      using namespace std;
  
      #define CONST const
      #define CLASS class
      #define AS_PUBLIC
      #define NEW new
      #define NULLPTR NULL
  
      typedef wstring STRING;
      typedef const STRING& STRING_IN;
      typedef STRING& STRING_OUT;
      typedef const STRING& STRING_RET;
  #else
      using namespace System;
  
      #define CONST
      #define CLASS ref class
      #define AS_PUBLIC public
  
      typedef System::String^ STRING;
      typedef STRING STRING_IN;
      typedef STRING% STRING_OUT;
      typedef STRING STRING_RET;
  #endif
